
import time


from jingdong_order_synchronization_kuaipu.dingding_robot.messages_push import MessagePush
from jingdong_order_synchronization_kuaipu.settings.logger import Loggings
logs = Loggings()
def retry_on_exception(max_retries=3, delay=2):
    """
    一个用于捕捉异常并重试运行的装饰器函数。

    :param max_retries: 最大重试次数，默认为3次
    :param delay: 重试之间的延迟时间（秒），默认为1秒
    :return: 装饰后的函数
    """
    def decorator(func):
        def wrapper(*args, **kwargs):
            retries = 0
            while retries < max_retries:
                try:
                    return func(*args, **kwargs)
                except Exception as e:
                    logs.debug(f"在函数 {func.__name__} 中发生异常：{e}")
                    retries += 1
                    if retries < max_retries:
                        logs.debug(f"正在重试，第{retries}次...")
                        time.sleep(delay)
                    else:
                        logs.error("通知程序管理员，重试次数已达到最大值，操作失败。")

        return wrapper
    return decorator